home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / DEMO / KBDDEMO.M < prev    next >
Encoding:
Text File  |  1991-02-19  |  3.3 KB  |  100 lines

  1. MODULE KbdDemo;
  2.  
  3. (*------------------------------------------------------------------------------
  4.  * Version 1.1
  5.  *------------------------------------------------------------------------------
  6.  * Copyright © 1989 by Michael Seyfried
  7.  *------------------------------------------------------------------------------
  8.  * Demonstartionsprogramm zum Austesten von 'KbdEvents'
  9.  *------------------------------------------------------------------------------
  10.  *)
  11.  
  12. FROM SYSTEM IMPORT CAST, BYTE;
  13.  
  14. FROM GEMGlobals IMPORT MButtonSet, GemChar, SpecialKeySet, SpecialKey;
  15.  
  16. FROM GEMEnv IMPORT RC, DeviceHandle, InitGem;
  17.  
  18. FROM AESEvents IMPORT Event, RectEnterMode, MultiEvent, MessageBuffer,
  19.                       EventSet;
  20.  
  21. FROM GrafBase IMPORT Rectangle, Rect, Point;
  22.  
  23. IMPORT InOut;
  24.  
  25. IMPORT StrConv;
  26.  
  27. IMPORT KbdEvents;
  28.  
  29. VAR DevHdl: DeviceHandle;                   (* VDI-Handle *)
  30.     success: BOOLEAN;
  31.     mouseLoc: Point;                        (* Variablen für MultiEvent *)
  32.     buttons: MButtonSet;
  33.     keyState: SpecialKeySet;
  34.     key: GemChar;
  35.     doneClicks: CARDINAL;
  36.     occuredEvents: EventSet;
  37.     msg: MessageBuffer;
  38.  
  39. BEGIN
  40.   InitGem( RC, DevHdl, success);    (* beim GEM anmelden *)
  41.   IF success THEN
  42.     InOut.WriteString( "Modul 'KbdDemo' zum Austesten von 'KbdEvents'");
  43.     InOut.WriteLn;
  44.     InOut.WriteString( 'Copyright © 1989 by Michael Seyfried');
  45.     InOut.WriteLn; InOut.WriteLn;
  46.     InOut.WriteString( "'Esc' beenden, 'Undo' KbdEvents (de)aktivieren");
  47.     InOut.WriteLn; InOut.WriteLn;
  48.  
  49.     (* Ereignisschleife *)
  50.     LOOP
  51.       MultiEvent( EventSet {keyboard}, 0, MButtonSet {}, MButtonSet {},
  52.                   lookForEntry, Rect( 0, 0, 0, 0),
  53.                   lookForEntry, Rect( 0, 0, 0, 0),
  54.                   msg, 0L, mouseLoc, buttons, keyState,
  55.                   key, doneClicks, occuredEvents);
  56.       IF keyboard IN occuredEvents THEN
  57.         IF key.scan = CAST( BYTE, 97) THEN
  58.           InOut.WriteString( 'KbdEvents wurde ');
  59.           IF KbdEvents.KbdEventsInstalled() THEN
  60.             KbdEvents.DeInstallKbdEvents;
  61.             InOut.WriteString( 'deaktiviert.');
  62.           ELSE
  63.             KbdEvents.InstallKbdEvents;
  64.             InOut.WriteString( 'aktiviert.');
  65.           END;
  66.           InOut.WriteLn;
  67.         ELSIF key.ascii = CHR( 27) THEN
  68.           (* Bei Esc terminieren *)
  69.           EXIT
  70.         ELSE
  71.           InOut.WriteString( 'Das GEM meldet folgendes Tastaturereignis:');
  72.           InOut.WriteLn;
  73.           InOut.WriteString( 'ascii: ');
  74.           InOut.Write( key.ascii);
  75.           InOut.WriteLn;
  76.           InOut.WriteString( 'scan: ');
  77.           InOut.WriteString( StrConv.CardToStr( CAST( CARDINAL, key.scan), 5));
  78.           InOut.WriteLn;
  79.           InOut.WriteString( 'keyState: { ');
  80.           IF rightShiftKey IN keyState THEN
  81.             InOut.WriteString( 'rightShiftKey ')
  82.           END;
  83.           IF leftShiftKey IN keyState THEN
  84.             InOut.WriteString( 'leftShiftKey ')
  85.           END;
  86.           IF controlKey IN keyState THEN
  87.             InOut.WriteString( 'controlKey ')
  88.           END;
  89.           IF alternateKey IN keyState THEN
  90.             InOut.WriteString( 'alternateKey ')
  91.           END;
  92.           InOut.WriteString( '}');
  93.           InOut.WriteCard( CAST( CARDINAL, keyState), 6);
  94.           InOut.WriteLn;
  95.         END;
  96.       END;
  97.     END
  98.   END
  99. END KbdDemo.
  100.